package com.bsg.upm.dto;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 主机数据传输对象
 * 
 * @author HCK
 *
 */
public class HostDto extends BaseDto implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 主机编码
	 */
	private String id;

	/**
	 * 区域编码
	 */
	private String areaId;

	/**
	 * 区域名称
	 */
	private String areaName;

	/**
	 * 集群编码
	 */
	private String clusterId;

	/**
	 * 集群名称
	 */
	private String clusterName;

	/**
	 * 主机名称
	 */
	private String name;

	/**
	 * ssh登陆IP
	 */
	private String sshIp;

	/**
	 * ssh登陆用户
	 */
	private String sshUser;

	/**
	 * ssh登录密码
	 */
	private String sshPassword;

	/**
	 * 机房名称
	 */
	private String room;

	/**
	 * 机位名称
	 */
	private String seat;

	/**
	 * 容器上限
	 */
	private Integer maxContainer;

	/**
	 * 本地hdd设备
	 */
	private String hddDev;

	/**
	 * 本地ssd设备
	 */
	private String ssdDev;

	/**
	 * san编码
	 */
	private String sanId;

	/**
	 * san名称
	 */
	private String sanName;

	/**
	 * 关联编码
	 */
	private String relateId;

	/**
	 * 主机状态
	 */
	private String status;

	/**
	 * 状态显示
	 */
	private String statusText;

	/**
	 * 描述
	 */
	private String description;

	/**
	 * 任务状态
	 */
	private String taskStatus;

	/**
	 * 任务状态显示
	 */
	private String taskStatusText;

	/**
	 * 单元数量
	 */
	private Integer unitCnt;

	/**
	 * 入库时间
	 */
	private String inputDateTime;

	/**
	 * CPU总数
	 */
	private Integer cpuCnt;

	/**
	 * CPU使用数
	 */
	private Integer usedCpuCnt;

	/**
	 * 内存总量
	 */
	private Long memCnt;

	/**
	 * 内存分配量
	 */
	private Long usedMemCnt;

	/**
	 * HDD总量
	 */
	private Long hddCnt;

	/**
	 * HDD分配量
	 */
	private Long usedHddCnt;

	/**
	 * SSD总量
	 */
	private Long ssdCnt;

	/**
	 * SSD分配量
	 */
	private Long usedSsdCnt;

	/**
	 * 操作系统
	 */
	private String os;

	/**
	 * 操作系统类型
	 */
	private String osType;

	private String architecture;
	private String kernelVersion;

	private List<Map<String, Object>> units = new ArrayList<>();

	/**
	 * 获取主机编码
	 * 
	 * @return id 主机编码
	 */
	public String getId() {
		return id;
	}

	/**
	 * 设置主机编码
	 * 
	 * @param id
	 *            主机编码
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取区域编码
	 * 
	 * @return areaId 区域编码
	 */
	public String getAreaId() {
		return areaId;
	}

	/**
	 * 设置区域编码
	 * 
	 * @param areaId
	 *            区域编码
	 */
	public void setAreaId(String areaId) {
		this.areaId = areaId;
	}

	/**
	 * 获取区域名称
	 * 
	 * @return areaName 区域名称
	 */
	public String getAreaName() {
		return areaName;
	}

	/**
	 * 设置区域名称
	 * 
	 * @param areaName
	 *            区域名称
	 */
	public void setAreaName(String areaName) {
		this.areaName = areaName;
	}

	/**
	 * 获取集群编码
	 * 
	 * @return clusterId 集群编码
	 */
	public String getClusterId() {
		return clusterId;
	}

	/**
	 * 设置集群编码
	 * 
	 * @param clusterId
	 *            集群编码
	 */
	public void setClusterId(String clusterId) {
		this.clusterId = clusterId;
	}

	/**
	 * 获取集群名称
	 * 
	 * @return clusterName 集群名称
	 */
	public String getClusterName() {
		return clusterName;
	}

	/**
	 * 设置集群名称
	 * 
	 * @param clusterName
	 *            集群名称
	 */
	public void setClusterName(String clusterName) {
		this.clusterName = clusterName;
	}

	/**
	 * 获取主机名称
	 * 
	 * @return name 主机名称
	 */
	public String getName() {
		return name;
	}

	/**
	 * 设置主机名称
	 * 
	 * @param name
	 *            主机名称
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获取ssh登陆IP
	 * 
	 * @return sshIp ssh登陆IP
	 */
	public String getSshIp() {
		return sshIp;
	}

	/**
	 * 设置ssh登陆IP
	 * 
	 * @param sshIp
	 *            ssh登陆IP
	 */
	public void setSshIp(String sshIp) {
		this.sshIp = sshIp;
	}

	/**
	 * 获取ssh登陆用户
	 * 
	 * @return sshUser ssh登陆用户
	 */
	public String getSshUser() {
		return sshUser;
	}

	/**
	 * 设置ssh登陆用户
	 * 
	 * @param sshUser
	 *            ssh登陆用户
	 */
	public void setSshUser(String sshUser) {
		this.sshUser = sshUser;
	}

	/**
	 * 获取ssh登录密码
	 * 
	 * @return sshPassword ssh登录密码
	 */
	public String getSshPassword() {
		return sshPassword;
	}

	/**
	 * 设置ssh登录密码
	 * 
	 * @param sshPassword
	 *            ssh登录密码
	 */
	public void setSshPassword(String sshPassword) {
		this.sshPassword = sshPassword;
	}

	/**
	 * 获取机房名称
	 * 
	 * @return room 机房名称
	 */
	public String getRoom() {
		return room;
	}

	/**
	 * 设置机房名称
	 * 
	 * @param room
	 *            机房名称
	 */
	public void setRoom(String room) {
		this.room = room;
	}

	/**
	 * 获取机位名称
	 * 
	 * @return seat 机位名称
	 */
	public String getSeat() {
		return seat;
	}

	/**
	 * 设置机位名称
	 * 
	 * @param seat
	 *            机位名称
	 */
	public void setSeat(String seat) {
		this.seat = seat;
	}

	/**
	 * 获取容器上限
	 * 
	 * @return maxContainer 容器上限
	 */
	public Integer getMaxContainer() {
		return maxContainer;
	}

	/**
	 * 设置容器上限
	 * 
	 * @param maxContainer
	 *            容器上限
	 */
	public void setMaxContainer(Integer maxContainer) {
		this.maxContainer = maxContainer;
	}

	/**
	 * 获取本地hdd设备
	 * 
	 * @return hddDev 本地hdd设备
	 */
	public String getHddDev() {
		return hddDev;
	}

	/**
	 * 设置本地hdd设备
	 * 
	 * @param hddDev
	 *            本地hdd设备
	 */
	public void setHddDev(String hddDev) {
		this.hddDev = hddDev;
	}

	/**
	 * 获取本地ssd设备
	 * 
	 * @return ssdDev 本地ssd设备
	 */
	public String getSsdDev() {
		return ssdDev;
	}

	/**
	 * 设置本地ssd设备
	 * 
	 * @param ssdDev
	 *            本地ssd设备
	 */
	public void setSsdDev(String ssdDev) {
		this.ssdDev = ssdDev;
	}

	/**
	 * 获取san编码
	 * 
	 * @return sanId san编码
	 */
	public String getSanId() {
		return sanId;
	}

	/**
	 * 设置san编码
	 * 
	 * @param sanId
	 *            san编码
	 */
	public void setSanId(String sanId) {
		this.sanId = sanId;
	}

	/**
	 * 获取san名称
	 * 
	 * @return sanName san名称
	 */
	public String getSanName() {
		return sanName;
	}

	/**
	 * 设置san名称
	 * 
	 * @param sanName
	 *            san名称
	 */
	public void setSanName(String sanName) {
		this.sanName = sanName;
	}

	/**
	 * 获取关联编码
	 * 
	 * @return relateId 关联编码
	 */
	public String getRelateId() {
		return relateId;
	}

	/**
	 * 设置关联编码
	 * 
	 * @param relateId
	 *            关联编码
	 */
	public void setRelateId(String relateId) {
		this.relateId = relateId;
	}

	/**
	 * 获取主机状态
	 * 
	 * @return status 主机状态
	 */
	public String getStatus() {
		return status;
	}

	/**
	 * 设置主机状态
	 * 
	 * @param status
	 *            主机状态
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 获取状态显示
	 * 
	 * @return statusText 状态显示
	 */
	public String getStatusText() {
		return statusText;
	}

	/**
	 * 设置状态显示
	 * 
	 * @param statusText
	 *            状态显示
	 */
	public void setStatusText(String statusText) {
		this.statusText = statusText;
	}

	/**
	 * 获取描述
	 * 
	 * @return description 描述
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * 设置描述
	 * 
	 * @param description
	 *            描述
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * 获取任务状态
	 * 
	 * @return taskStatus 任务状态
	 */
	public String getTaskStatus() {
		return taskStatus;
	}

	/**
	 * 设置任务状态
	 * 
	 * @param taskStatus
	 *            任务状态
	 */
	public void setTaskStatus(String taskStatus) {
		this.taskStatus = taskStatus;
	}

	/**
	 * 获取任务状态显示
	 * 
	 * @return taskStatusText 任务状态显示
	 */
	public String getTaskStatusText() {
		return taskStatusText;
	}

	/**
	 * 设置任务状态显示
	 * 
	 * @param taskStatusText
	 *            任务状态显示
	 */
	public void setTaskStatusText(String taskStatusText) {
		this.taskStatusText = taskStatusText;
	}

	/**
	 * 获取单元数量
	 * 
	 * @return unitCnt 单元数量
	 */
	public Integer getUnitCnt() {
		return unitCnt;
	}

	/**
	 * 设置单元数量
	 * 
	 * @param unitCnt
	 *            单元数量
	 */
	public void setUnitCnt(Integer unitCnt) {
		this.unitCnt = unitCnt;
	}

	/**
	 * 获取入库时间
	 * 
	 * @return inputDateTime 入库时间
	 */
	public String getInputDateTime() {
		return inputDateTime;
	}

	/**
	 * 设置入库时间
	 * 
	 * @param inputDateTime
	 *            入库时间
	 */
	public void setInputDateTime(String inputDateTime) {
		this.inputDateTime = inputDateTime;
	}

	/**
	 * 获取CPU总数
	 * 
	 * @return cpuCnt CPU总数
	 */
	public Integer getCpuCnt() {
		return cpuCnt;
	}

	/**
	 * 设置CPU总数
	 * 
	 * @param cpuCnt
	 *            CPU总数
	 */
	public void setCpuCnt(Integer cpuCnt) {
		this.cpuCnt = cpuCnt;
	}

	/**
	 * 获取CPU使用数
	 * 
	 * @return usedCpuCnt CPU使用数
	 */
	public Integer getUsedCpuCnt() {
		return usedCpuCnt;
	}

	/**
	 * 设置CPU使用数
	 * 
	 * @param usedCpuCnt
	 *            CPU使用数
	 */
	public void setUsedCpuCnt(Integer usedCpuCnt) {
		this.usedCpuCnt = usedCpuCnt;
	}

	/**
	 * 获取内存总量
	 * 
	 * @return memCnt 内存总量
	 */
	public Long getMemCnt() {
		return memCnt;
	}

	/**
	 * 设置内存总量
	 * 
	 * @param memCnt
	 *            内存总量
	 */
	public void setMemCnt(Long memCnt) {
		this.memCnt = memCnt;
	}

	/**
	 * 获取内存分配量
	 * 
	 * @return usedMemCnt 内存分配量
	 */
	public Long getUsedMemCnt() {
		return usedMemCnt;
	}

	/**
	 * 设置内存分配量
	 * 
	 * @param usedMemCnt
	 *            内存分配量
	 */
	public void setUsedMemCnt(Long usedMemCnt) {
		this.usedMemCnt = usedMemCnt;
	}

	/**
	 * 获取HDD总量
	 * 
	 * @return hddCnt HDD总量
	 */
	public Long getHddCnt() {
		return hddCnt;
	}

	/**
	 * 设置HDD总量
	 * 
	 * @param hddCnt
	 *            HDD总量
	 */
	public void setHddCnt(Long hddCnt) {
		this.hddCnt = hddCnt;
	}

	/**
	 * 获取HDD分配量
	 * 
	 * @return usedHddCnt HDD分配量
	 */
	public Long getUsedHddCnt() {
		return usedHddCnt;
	}

	/**
	 * 设置HDD分配量
	 * 
	 * @param usedHddCnt
	 *            HDD分配量
	 */
	public void setUsedHddCnt(Long usedHddCnt) {
		this.usedHddCnt = usedHddCnt;
	}

	/**
	 * 获取SSD总量
	 * 
	 * @return ssdCnt SSD总量
	 */
	public Long getSsdCnt() {
		return ssdCnt;
	}

	/**
	 * 设置SSD总量
	 * 
	 * @param ssdCnt
	 *            SSD总量
	 */
	public void setSsdCnt(Long ssdCnt) {
		this.ssdCnt = ssdCnt;
	}

	/**
	 * 获取SSD分配量
	 * 
	 * @return usedSsdCnt SSD分配量
	 */
	public Long getUsedSsdCnt() {
		return usedSsdCnt;
	}

	/**
	 * 设置SSD分配量
	 * 
	 * @param usedSsdCnt
	 *            SSD分配量
	 */
	public void setUsedSsdCnt(Long usedSsdCnt) {
		this.usedSsdCnt = usedSsdCnt;
	}

	/**
	 * 获取操作系统
	 * 
	 * @return os 操作系统
	 */
	public String getOs() {
		return os;
	}

	/**
	 * 设置操作系统
	 * 
	 * @param os
	 *            操作系统
	 */
	public void setOs(String os) {
		this.os = os;
	}

	/**
	 * 获取操作系统类型
	 * 
	 * @return osType 操作系统类型
	 */
	public String getOsType() {
		return osType;
	}

	/**
	 * 设置操作系统类型
	 * 
	 * @param osType
	 *            操作系统类型
	 */
	public void setOsType(String osType) {
		this.osType = osType;
	}

	/**
	 * 获取architecture
	 * 
	 * @return architecture architecture
	 */
	public String getArchitecture() {
		return architecture;
	}

	/**
	 * 设置architecture
	 * 
	 * @param architecture
	 *            architecture
	 */
	public void setArchitecture(String architecture) {
		this.architecture = architecture;
	}

	/**
	 * 获取kernelVersion
	 * 
	 * @return kernelVersion kernelVersion
	 */
	public String getKernelVersion() {
		return kernelVersion;
	}

	/**
	 * 设置kernelVersion
	 * 
	 * @param kernelVersion
	 *            kernelVersion
	 */
	public void setKernelVersion(String kernelVersion) {
		this.kernelVersion = kernelVersion;
	}

	/**
	 * 获取units
	 * 
	 * @return units units
	 */
	public List<Map<String, Object>> getUnits() {
		return units;
	}

	/**
	 * 设置units
	 * 
	 * @param units
	 *            units
	 */
	public void setUnits(List<Map<String, Object>> units) {
		this.units = units;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "HostDto [id=" + id + ", areaId=" + areaId + ", areaName=" + areaName + ", clusterId=" + clusterId
				+ ", clusterName=" + clusterName + ", name=" + name + ", sshIp=" + sshIp + ", sshUser=" + sshUser
				+ ", sshPassword=" + sshPassword + ", room=" + room + ", seat=" + seat + ", maxContainer="
				+ maxContainer + ", hddDev=" + hddDev + ", ssdDev=" + ssdDev + ", sanId=" + sanId + ", sanName="
				+ sanName + ", relateId=" + relateId + ", status=" + status + ", statusText=" + statusText
				+ ", description=" + description + ", taskStatus=" + taskStatus + ", taskStatusText=" + taskStatusText
				+ ", unitCnt=" + unitCnt + ", inputDateTime=" + inputDateTime + ", cpuCnt=" + cpuCnt + ", usedCpuCnt="
				+ usedCpuCnt + ", memCnt=" + memCnt + ", usedMemCnt=" + usedMemCnt + ", hddCnt=" + hddCnt
				+ ", usedHddCnt=" + usedHddCnt + ", ssdCnt=" + ssdCnt + ", usedSsdCnt=" + usedSsdCnt + ", os=" + os
				+ ", osType=" + osType + ", architecture=" + architecture + ", kernelVersion=" + kernelVersion
				+ ", units=" + units + "]";
	}

}
